บทความนี้ขอกล่าวถึงเรื่องที่หลาย ๆ คนสงสัยเกี่ยวกับความแตกต่างของ Interface Class กับ Abstract Class โดยจะขอกล่าวถึงความแตกต่างที่เห็นได้ชัดจากการใช้งาน และการประยุกต์ใช้ครับ
ความแตกต่างระหว่าง Interface Class กับ Abstract Class
1. Interface Class จะมีเฉพาะ Method ที่มีเพียงแค่ชื่อ แต่ไม่มีในส่วนของหน้าที่การทำงาน
2. Abstract Class มีทั้ง Method ที่สามารถเรียกใช้งานได้ทันที และ Method ที่มีเพียงแค่ชื่อ แต่ไม่มีในส่วนของหน้าที่การทำงาน
3. Class ลูก สามารถ implements Interface Class ได้มากกว่า 1 Class
4. Class ลูก สามารถ extends Abstract Class ได้เพียง 1 Class
5. Interface Class ใช้คำสั่ง implements ในการเรียกใช้งาน
6. Abstract Class ใช้คำสั่ง extends ในการเรียกใช้งาน
การประยุกต์ใช้งาน
1. Interface Class มักจะถูกนำมาใช้ในกรณีออกแบบ Class ที่อยู่ในกลุ่มเดียวกัน แต่มีการทำงานที่ไม่เหมือนกัน เช่น นก กับเครื่องบิน สามารถบินได้เหมือนกัน แต่บินไม่เหมือนกัน
2. Abstract Class มักจะถูกนำมาใช้ในกรณีออกแบบ Class ที่มี Method แบบให้ Class ลูกใช้งานได้ทันที และแบบให้ Class ลูกไปเขียนขั้นตอนการทำงานเอง เช่น สัตว์ประเภทต่าง ๆ ที่มีการทำงานที่เหมือนกัน และไม่เหมือนกัน
ทั้งหมดเป็นเพียงจุดเล็กน้อยของความแตกต่างระหว่าง Interface Class กับ Abstract Class ครับ